package model

import (
	"pbj-server/pkg/database"
	"pbj-server/pkg/logger"
)

// AutoMigrate 自动迁移数据库表结构
func AutoMigrate() error {
	db := database.GetDB()
	
	// 迁移用户表
	if err := db.AutoMigrate(&User{}); err != nil {
		logger.Errorf("迁移用户表失败: %v", err)
		return err
	}
	
	logger.Info("数据库表结构迁移完成")
	return nil
}

// CreateTables 创建数据库表（如果不存在）
func CreateTables() error {
	db := database.GetDB()
	
	// 创建用户表
	if !db.Migrator().HasTable(&User{}) {
		if err := db.Migrator().CreateTable(&User{}); err != nil {
			logger.Errorf("创建用户表失败: %v", err)
			return err
		}
		logger.Info("用户表创建成功")
	}
	
	return nil
}

// DropTables 删除数据库表
func DropTables() error {
	db := database.GetDB()
	
	// 删除用户表
	if err := db.Migrator().DropTable(&User{}); err != nil {
		logger.Errorf("删除用户表失败: %v", err)
		return err
	}
	
	logger.Info("数据库表删除完成")
	return nil
} 